Technical Field
The invention relates to a method and a system for programming a robot, in particular, a robot comprising a robot arm.
Description of Related Art
Methods and systems of the type under discussion have been known for many years from the field. As a result, there exists a variety of programming methods for programming industrial robots: teach-in, playback, sensor-based programming, CAD (computer-aided design) programming and dialog-based or textual programming.
In the teach-in programming method known from the field, the robot is programmed by manually approaching and saving various waypoints. The tool for this procedure is the teach panel, a remote controller with a graphics display, on which the robot state and the robot program can be shown. The user moves the robot to different points by steering the tool center point (TCP), a defined point on the last joint of the robot, in 3 or 6 spatial directions with, for example, a joystick. The user saves the coordinates of the various points that are approached and integrates this information into the robot program. In this case each waypoint is defined as a goal or intermediate point of a movement command, for example, a point-to-point, linear or circular movement. The operator enters additional path parameters by hand, for example, the speed, acceleration or blending with the next command. The construction of the robot program, i.e., in particular, the individual movement commands, can usually be chosen from a list and compiled.
In the case of the playback programming method known from the field, not only the individual points are saved, but the user can also move a robot arm on a continuous path, so that a large set of waypoints can be saved. This feature allows complex freeform paths, for example, along a fender of a vehicle, to be easily programmed that otherwise would be difficult to program with the individual movement commands of the teach-in programming method. The continuous lead-through is usually enabled by means of a force-torque sensor (FTS) at the robot flange: the human or, more specifically, an operator grasps the robot and exerts force on it. The forces are measured with the FTS and transmitted to the robot controller, which continuously computes a movement that compensates for the forces. This path is then assigned to one or more movement commands in the robot program.
In the sensor-based programming method, a continuous path is generated in a manner analogous to the playback method. However, additional sensors are used for this purpose, for, example, the projection of a laser line onto a component, the capturing of this line with a camera system and the conversion of the detected line into a motion path for the robot. In this case it is possible to achieve a high accuracy. The robot does not have to be moved directly, a feature that is advantageous in the case of large robots. However, additional hardware and calibration of the camera and the robot are necessary.
In contrast to these aforementioned on-line methods, in which the robot is programmed directly on site, in the CAD programming method a detailed CAD model of the work cell, the robot and the components to be manipulated is used to program the robot in a simulation environment. In this case the waypoints are determined by means of mouse interaction, for example, on the surface of the CAD model of the component. Or complete paths are calculated on the surface, for example, following the edges of the CAD model or following a particular pattern, for example, meandering. The points are mapped to point-to-point, linear or circular movement commands and saved to the robot program. Additional path parameters can be specified in a manner analogous to the teach-in programming method. The advantages include minimal effort to determine a path along the surface of objects, since the path can be calculated directly with the aid of the CAD model without requiring the use of the robot during the programming operation. However, the disadvantages include the calibration between the real work cell and the simulation, the provision of CAD models and the necessary adaptation for minor variances.
The common denominator of the above programming methods is the programming by means of waypoints and sequences of waypoints (paths) that can be generated graphically by means of various methods. One major disadvantage of individual waypoints, in particular, Cartesian waypoints is that they cannot be approached, for example, due to obstacles, singularities and/or the lack of accessibility in the case of minor variances, with the result that the robot program will fail.
In the dialog-based and textual programming methods known from the field, complete robot programs are created using a text editor or a graphics kit. In this case the full capabilities of the robot controller can be utilized. In particular, the analysis of robot external sensors can be used to respond to process variances caused, for example, by the visual localization of a component to be manipulated or by manufacturing tolerances. Programming directly in the robot programming language makes it possible to use additional movement commands that at the present time cannot be programmed by means of the aforementioned methods, for example, a force control using FTCtrl from KUKA or AdeptForce from Adept. In order to control the force, it is possible, for example, to specify the spatial directions for the feedback control, the desired values for the force/torque and simple termination constraints. From these basic commands very complex robot programs can be created. That being the case, even simple tasks, such as, for example, inserting a cylinder into a hole, may consist of several movement commands and a variety of force controllers. A typical assembly task is based on a multitude of such tasks, for example, inserting, screwing, hooking. Therefore, the implementation of an assembly task is associated with a great deal of effort. Furthermore, it is disadvantageous that expert knowledge about a robot programming language, the process and the robot are necessary.
Another problem is that at the present time the degree of automation is relatively low in the industry, even in the automotive sector. The majority of the applications that are automated using robot arms can be characterized by the fact that they move along rigidly programmed motion paths without a sensor-based response to variances. As a result, a tool, such as, for example, a welding gun, moves on the firmly programmed motion path. The variances in the process are reduced with a great deal of engineering effort and expense to a negligible level, for example, by means of special grippers for each component and special, high precision feeders. Only in this way is it possible to apply, if desired, a programming method with the assistance of teach-in or playback to generate the fixed motion path. If this is not economically feasible, then the conventional practice in most cases is to dispense with an automation by means of more complex programming methods.
The problem with this strategy is that this approach quickly reaches its limits, for example, due to the following problems:                Short production runs require frequent reprogramming, so that the high amount of engineering effort is uneconomical. For example, quality assurance tests of devices that change on a weekly cycle, for example, long term tests of washing machines, may be required.        Assembly tasks often have little play so that an interaction of forces, for example, during insertion of components, is unavoidable; and these assembly tasks consist of a multitude of different tasks, such as, for example, gripping, joining, contacting.        Resilient components have variations in their geometry, so that these geometrical variations have to be taken into consideration in the process, for example, a resilient sheet metal plate when gripping or joining plastic parts.        Objects, which are detected by means of visual sensors, for example, a screw for screwing, are at locations that are always different, for which reason the positioning of the robot has to be flexible.        
Therefore, at the present time those tasks that cannot be programmed with fixed motion paths, for example, during assembly and quality assurance testing, are mostly performed by human workers.